package com.example.observe.java;

import java.util.Observable;

public class ObserverDemo {

    public static void main(String[] args) {

        // Observable 是发布者
        MyObservable observable = new MyObservable();

        observable.addObserver((o, value) -> {
            // o 是 Observer 订阅者（观察者）
            // value 是数据
            System.out.println(value);
        });

        // 设置为 true，表示通知观察者数据有变化
        observable.setChanged();

        // 给观察者发送数据
        observable.notifyObservers("Hello, World!");
    }

    public static class MyObservable extends Observable{
        @Override
        protected synchronized void setChanged() {
            super.setChanged();
        }
    }
}
